<?php
/*
 * Membresia DAL.
 * @Autor: Inicial.cl.
 */
class MembresiaDAL {
	//METODO PARA GRABAR MEMBRESIA.
	public static function grabar($oMembresia){
		try{
			$arr = array(
				"{#IDESTADO}" => $oMembresia->getIdEstado(),
				"{#NOMBRE}" => $oMembresia->getNombre(),
				"{#DURACION}" => $oMembresia->getDuracion(),
				"{#IDTIPOUSUARIO}" => $oMembresia->getIdTipoUsuario()
			);
			$query = Util::getQuery($arr, MembresiaSQL::$GRABAR_MEMBRESIA);
			$arrDatos = Bd::exec($query);

			$id = Bd::$IDENTITY; //Retorno id insertado
			return $id;
		} catch (Excepcion $e){
			throw new Exception($e->getMessage());
		}
	}

	//METODO PARA EDITAR MEMBRESIA.
	public static function editar($oMembresia){
		try{
			$arr = array(
				"{#ID}" => $oMembresia->getId(),
				"{#IDESTADO}" => $oMembresia->getIdEstado(),
				"{#NOMBRE}" => $oMembresia->getNombre(),
				"{#DURACION}" => $oMembresia->getDuracion(),
				"{#IDTIPOUSUARIO}" => $oMembresia->getIdTipoUsuario()
			);
			$query = Util::getQuery($arr, MembresiaSQL::$EDITAR_MEMBRESIA);
			$arrDatos = Bd::exec($query);

		} catch (Excepcion $e){
			throw new Exception($e->getMessage());
		}
	}

	//METODO PARA LISTAR MEMBRESIA.
	public static function listar($oMembresia){
		try{
			$arr = array(
				"{#ID}" => $oMembresia->getId(),
				"{#IDESTADO}" => $oMembresia->getIdEstado(),
				"{#NOMBRE}" => $oMembresia->getNombre(),
				"{#DURACION}" => $oMembresia->getDuracion(),
				"{#IDTIPOUSUARIO}" => $oMembresia->getIdTipoUsuario()
			);
			$query = Util::getQuery($arr, MembresiaSQL::$LISTAR_MEMBRESIA);
			$arrDatos = Bd::exec($query);
			$arrMembresia = array();

			if (count($arrDatos) > 0) {
				foreach ($arrDatos as $row) {
					$oMembresia = new Membresia();

					$oMembresia->setId($row["id"]);
					$oMembresia->setIdEstado($row["idEstado"]);
					$oMembresia->setNombre($row["nombre"]);
					$oMembresia->setDuracion($row["duracion"]);
					$oMembresia->setIdTipoUsuario($row["idTipoUsuario"]);

					$arrMembresia[] = $oMembresia;
				}
			}

			return $arrMembresia;
		} catch (Excepcion $e){
			throw new Exception($e->getMessage());
		}
	}

	//METODO PARA OBTENER POR ID MEMBRESIA.
	public static function obtenerPorId($id){
		try{
			$arr = array(
					"{#ID}" => $id
				);
			$query = Util::getQuery($arr, MembresiaSQL::$OBTENER_MEMBRESIA_POR_ID);
			$arrDatos = Bd::exec($query);

			if (count($arrDatos) > 0) {
				$oMembresia = new Membresia();

				foreach ($arrDatos as $row) {
					$oMembresia->setId($row["id"]);
					$oMembresia->setIdEstado($row["idEstado"]);
					$oMembresia->setNombre($row["nombre"]);
					$oMembresia->setDuracion($row["duracion"]);
					$oMembresia->setIdTipoUsuario($row["idTipoUsuario"]);
				}
				return $oMembresia;
			}
		} catch (Excepcion $e){
			throw new Exception($e->getMessage());
		}
	}

	//METODO PARA ELIMINAR MEMBRESIA.
	public static function eliminar($id){
		try{
			$arr = array("{#ID}" => $id);
				$query = Util::getQuery($arr, MembresiaSQL::$ELIMINAR_MEMBRESIA);
				$arrDatos = Bd::exec($query);

		} catch (Excepcion $e){
			throw new Exception($e->getMessage());
		}
	}
}
?>